home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / PASCAL / 0921.ZIP / JOYSTK.ARC / JOYDEMO1.PAS < prev    next >
Pascal/Delphi Source File  |  1987-03-30  |  3KB  |  82 lines

  1. program JoyDemo1;
  2.  
  3. {
  4. Author:        David Howorth
  5. Last updated:  March 29, 1987
  6. Application:   A demonstration of procedure ReadJoy, a procedure for
  7.                reading the joystick (using variable parameters) and of
  8.                the functions ButtonA1, etc., which read the 4 joystick
  9.                buttons.  Outputs raw data to the screen.
  10. }
  11. {$C-}
  12. { Above compiler directive necessary so that 'keypressed' function works
  13.   properly.  Also speeds up screen output.                               }
  14.  
  15. var
  16.   ch      :   char;
  17.   Done    :   boolean;
  18.   JoyAX,                       { Note that these need not be    }
  19.   JoyAY,                       { global variables; they could   }
  20.   JoyBX,                       { be local to whatever procedure }
  21.   JoyBY   :   integer;         { calls ReadJoy.                 }
  22.  
  23. {$I BUTTONS.INC}
  24. {$I READJOY.INC}
  25.  
  26. begin
  27.   clrscr;
  28.   Done := false;
  29.   while keypressed do read(kbd,ch);        { empty keyboard buffer }
  30.   writeln('                         JOYSTICK DEMONSTRATION NUMBER 1');
  31.   writeln;
  32.   writeln('                       (Joystick input shown as raw data)');
  33.   gotoxy(1,7);
  34.   writeln('              JOYSTICK A                                 JOYSTICK B');
  35.   writeln('  X-Axis  Y-Axis  Button 1  Button 2         X-Axis  Y-Axis  Button 1  Button 2');
  36.   gotoxy(1,23);
  37.   writeln('                               Press  ''Q'' to quit.');
  38.   repeat
  39.     ReadJoy(JoyAX,JoyAY,JoyBX,JoyBY);
  40.     gotoxy(1,9);
  41.     if JoyAX >= 100
  42.       then write('   ',JoyAX)
  43.       else if JoyAX >=10
  44.              then write('    ',JoyAX)
  45.              else write('     ',JoyAX);
  46.     if JoyAY >= 100
  47.       then write('     ',JoyAY)
  48.       else if JoyAY >=10
  49.              then write('      ',JoyAY)
  50.              else write('       ',JoyAY);
  51.     if ButtonA1
  52.       then write('       IN')
  53.       else write('      OUT');
  54.     if ButtonA2
  55.       then write('        IN')
  56.       else write('       OUT');
  57.     write('          ');
  58.     if JoyBX >= 100
  59.       then write('   ',JoyBX)
  60.       else if JoyBX >=10
  61.              then write('    ',JoyBX)
  62.              else write('     ',JoyBX);
  63.     if JoyBY >= 100
  64.       then write('     ',JoyBY)
  65.       else if JoyBY >=10
  66.              then write('      ',JoyBY)
  67.              else write('       ',JoyBY);
  68.     if ButtonB1
  69.       then write('       IN')
  70.       else write('      OUT');
  71.     if ButtonB2
  72.       then write('        IN')
  73.       else write('       OUT');
  74.     if keypressed
  75.       then begin
  76.              read(kbd,ch);
  77.              if upcase(ch) = 'Q' then Done := true;
  78.            end;
  79.   until Done;
  80.   clrscr;
  81. end.
  82.